package org.redhat.auth.security.util;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
/**
 * 本类使用ehcache缓存来管理系统登录时的一些扩展的属性
 * @author lingen.liu
 *
 */
public class AuthLoginParamUtil {

	private static Cache cache;
	
	/**
	 * 设置用户的扩展属性
	 * @param username  用户名
	 * @param param     扩展属性对象
	 */
	public static void setUserParam(String username,Object param){
		Element userParam = new Element(username,param);
		getCache().put(userParam);
	}
	
	/**
	 * 获取登录系统时的扩展属性
	 * @param username
	 * @return
	 */
	public static Object getUserParam(String username){
		Element userParam = getCache().get(username);
		if(userParam==null)return null;
		return userParam.getObjectValue();
	}
	
	/**
	 * 清除系统登录时的扩展属性，在登陆系统时用到
	 * @param username
	 */
	public static void clearUserParam(String username){
		getCache().remove(username);
	}

	private static Cache getCache() {
		if(cache==null)cache = CacheManagerUtil.getLoginParamCache();
		return cache;
	}

	private static void setCache(Cache cache) {
		AuthLoginParamUtil.cache = cache;
	}


	
	
}
